; REQUIRES: diasdk

; RUN: llvm-pdbutil pretty -all -class-recurse-depth=1 \
; RUN:   %p/Inputs/PrettyFuncDumperTest.pdb > %t
; RUN: FileCheck -input-file=%t %s -check-prefix=GLOBALS_FUNC
; RUN: FileCheck -input-file=%t %s -check-prefix=GLOBALS_DATA
; RUN: FileCheck -input-file=%t %s -check-prefix=TYPEDEF

; GLOBALS_FUNC: ---GLOBALS---
; GLOBALS_FUNC-DAG: void __cdecl NS::Func(char a, int b, ...)
; GLOBALS_FUNC-DAG: void __cdecl TemplateFunc<1,int>(int <Arg_0>)
; GLOBALS_FUNC-DAG: void __cdecl TemplateFunc<1,int,int,int>(int <Arg_0>, int <Arg_1>, int <Arg_2>)
; GLOBALS_FUNC-DAG: void __cdecl `anonymous namespace'::Func(int& a, const double b, volatile bool c)
; GLOBALS_FUNC-DAG: void __cdecl Func(int* array)
; GLOBALS_FUNC-DAG: int MemberFuncsTest::A::FuncA()
; GLOBALS_FUNC-DAG: void __cdecl MemberFuncsTest::A::FuncB(int a, ...)

; GLOBALS_DATA: ---GLOBALS---
; GLOBALS_DATA-DAG: void (__cdecl * FuncVarA)()
; GLOBALS_DATA-DAG: float (__cdecl * FuncVarB)()
; GLOBALS_DATA-DAG: int (__cdecl * VariadicFuncVar)(char, double, ...)

; TYPEDEF: ---TYPES---
; TYPEDEF: Typedefs:
; TYPEDEF-DAG: typedef void (__cdecl *)() FuncPtrA
; TYPEDEF-DAG: typedef int (__cdecl *)(char, double, ...) VariadicFuncPtrTypedef
; TYPEDEF-DAG: typedef float (__cdecl *)() FuncPtrB
